gtk4.git
9 years agowindow: Stop using gdk_screen_get_n_monitors
Matthias Clasen [Mon, 11 Apr 2016 03:52:00 +0000 (23:52 -0400)]
window: Stop using gdk_screen_get_n_monitors

9 years agosettings: Stop comparing screen numbers
Matthias Clasen [Mon, 11 Apr 2016 03:44:05 +0000 (23:44 -0400)]
settings: Stop comparing screen numbers

There is only one screen.

9 years agowindow: Stop using screen width/height
Matthias Clasen [Mon, 11 Apr 2016 03:45:11 +0000 (23:45 -0400)]
window: Stop using screen width/height

9 years agotreeview: Stop using screen width/height
Matthias Clasen [Mon, 11 Apr 2016 03:44:28 +0000 (23:44 -0400)]
treeview: Stop using screen width/height

Popups should always be placed relative to a monitor.

9 years agolabel: Stop using screen width/height
Matthias Clasen [Mon, 11 Apr 2016 03:43:34 +0000 (23:43 -0400)]
label: Stop using screen width/height

Popups should always be placed relative to a monitor.

9 years agocombobox: Stop using screen width/height
Matthias Clasen [Mon, 11 Apr 2016 03:42:57 +0000 (23:42 -0400)]
combobox: Stop using screen width/height

Popups should always be placed relative to a monitor.

9 years agogtk: Port to new monitor api
Matthias Clasen [Mon, 11 Apr 2016 03:01:10 +0000 (23:01 -0400)]
gtk: Port to new monitor api

Use the GdkDisplay monitor api instead of the GdkScreen one.

9 years agomenu: Add new monitor api
Matthias Clasen [Mon, 11 Apr 2016 02:59:53 +0000 (22:59 -0400)]
menu: Add new monitor api

This will work better with the new monitor api in gdk.

9 years agoinspector: Port to new monitor api
Matthias Clasen [Sat, 2 Apr 2016 23:22:36 +0000 (19:22 -0400)]
inspector: Port to new monitor api

Adapt to new monitor apis, and show more information.

9 years agowin32: Port to new monitor api
Руслан Ижбулатов [Wed, 20 Apr 2016 07:36:00 +0000 (07:36 +0000)]
win32: Port to new monitor api

9 years agox11: Bring back fullscreen-on-all-monitors support
Matthias Clasen [Thu, 28 Apr 2016 03:08:25 +0000 (23:08 -0400)]
x11: Bring back fullscreen-on-all-monitors support

It is unfortunate the EWMH requires Xinerama here - lets do this
without the caching that was previously there, I don't think it is
needed.

9 years agox11: Port to new monitor api
Matthias Clasen [Sun, 3 Apr 2016 04:12:39 +0000 (00:12 -0400)]
x11: Port to new monitor api

9 years agox11: Drop Xinerama
Matthias Clasen [Sun, 3 Apr 2016 04:15:42 +0000 (00:15 -0400)]
x11: Drop Xinerama

It may come back after the monitor conversion.

9 years agobroadway: Port to new monitor api
Matthias Clasen [Sun, 3 Apr 2016 03:42:40 +0000 (23:42 -0400)]
broadway: Port to new monitor api

9 years agowayland: Port to new monitor api
Matthias Clasen [Sat, 2 Apr 2016 14:18:56 +0000 (10:18 -0400)]
wayland: Port to new monitor api

9 years agointegrate docs
Matthias Clasen [Thu, 28 Apr 2016 02:51:42 +0000 (22:51 -0400)]
integrate docs

9 years agoscreen: Implement old monitor apis generically
Matthias Clasen [Sat, 2 Apr 2016 14:18:16 +0000 (10:18 -0400)]
screen: Implement old monitor apis generically

Implement all the monitor-related GdkScreen apis based on GdkMonitor.

9 years agoAdd a fallback for unconverted backends
Matthias Clasen [Mon, 25 Apr 2016 13:07:56 +0000 (09:07 -0400)]
Add a fallback for unconverted backends

If the monitor vfuncs are not implemented in a display class,
fall back to providing a single monitor object representing
the entire screen. This is not meant to be 'good enough', it
is just to provide some implementation until all backends
implement the monitor vfuncs. When that is the case, the
fallback should be removed.

9 years agodisplay: Add new monitor apis
Matthias Clasen [Fri, 1 Apr 2016 03:10:37 +0000 (23:10 -0400)]
display: Add new monitor apis

This follows our general direction of moving functionality
from GdkScreen to GdkDisplay.

9 years agoAdd GdkMonitor
Matthias Clasen [Fri, 1 Apr 2016 03:10:04 +0000 (23:10 -0400)]
Add GdkMonitor

Add a simple object representing a monitor.

9 years agoRevert "iconhelper: check if surface was invalidated"
Christian Hergert [Thu, 28 Apr 2016 02:02:25 +0000 (19:02 -0700)]
Revert "iconhelper: check if surface was invalidated"

This reverts commit 88d02583974659d1d37d825df78c79bee4c95d0e.

9 years agoGtkTreeView: change child repositioning to preserve locality
Руслан Ижбулатов [Tue, 26 Apr 2016 21:45:15 +0000 (21:45 +0000)]
GtkTreeView: change child repositioning to preserve locality

If there was a piece of text in the cell, then when the edit
entry is shown for that cell, it should have a piece of text
in it roughly at the same location.

Therefore, when child widget is enlarged (child preferred
size exceeds cell size), extra width should be added by
extending either left or right edge depending on text direction.

If after that the child sticks outside of the treeivew visible region,
try to push it back inside (breaking its alignment with the
cell), again, giving preference (i.e. adjusting it last)
to either left or right edge depending on text direction.

https://bugzilla.gnome.org/show_bug.cgi?id=765471

9 years agoiconhelper: check if surface was invalidated
Christian Hergert [Thu, 28 Apr 2016 00:45:01 +0000 (17:45 -0700)]
iconhelper: check if surface was invalidated

Fetching the style may cause the surface to be invalidated.

9 years agoUpdated Hungarian translation
Balázs Meskó [Wed, 27 Apr 2016 19:32:14 +0000 (19:32 +0000)]
Updated Hungarian translation

9 years agoUpdated Spanish translation
Daniel Mustieles [Wed, 27 Apr 2016 19:07:11 +0000 (21:07 +0200)]
Updated Spanish translation

9 years agoAdwaita: add a background to cellrendertext
Lapo Calamandrei [Wed, 27 Apr 2016 18:04:39 +0000 (20:04 +0200)]
Adwaita: add a background to cellrendertext

9 years ago3.21.1
Matthias Clasen [Wed, 27 Apr 2016 11:37:56 +0000 (07:37 -0400)]
3.21.1

9 years agoUpdates
Matthias Clasen [Wed, 27 Apr 2016 11:37:43 +0000 (07:37 -0400)]
Updates

9 years agowayland: Ignore NoSymbol keys
Daniel Stone [Wed, 27 Apr 2016 12:06:38 +0000 (14:06 +0200)]
wayland: Ignore NoSymbol keys

NoSymbol is not a valid GDK symbol (it only has the concept of
VoidSymbol, for some reason, which is neither the same thing nor
produced by any sane keymap). Passing NoSymbol events through to GTK+
apps is unlikely to produce anything useful.

In particular, this meant VTE would scroll to the end of the buffer when
pressing Fn (required for Page Up/Down on Macs), as it was receiving a
keypress that wasn't a modifeir. This does not happen on X11, as the
KEY_FN keycode is above 255, so does not get sent to clients.

https://bugzilla.gnome.org/show_bug.cgi?id=764825

9 years agoplacesview: update a leftover function name
Georges Basile Stavracas Neto [Wed, 27 Apr 2016 12:06:46 +0000 (09:06 -0300)]
placesview: update a leftover function name

This should've been part of the previous commit.

9 years agoplacesview: follow up fixes
Georges Basile Stavracas Neto [Tue, 26 Apr 2016 12:57:36 +0000 (09:57 -0300)]
placesview: follow up fixes

This patch unmarks the addresses' prefixes as translatable,
and updates the callback name to reflect what it really does
now.

This is a follow up fix from commit 7449add82.

https://bugzilla.gnome.org/show_bug.cgi?id=756570

9 years agowayland: Perform seat grab focus checks on native windows
Carlos Garnacho [Wed, 27 Apr 2016 10:12:18 +0000 (12:12 +0200)]
wayland: Perform seat grab focus checks on native windows

We don't care about the specific (possibly client-side) window that
requested the focus here, only the toplevel. Fixes mistakenly sent
focus events when the grab happens inside the current focus window.

https://bugzilla.gnome.org/show_bug.cgi?id=762756

9 years agopixelcache: reuse existing timeout source when possible
Christian Hergert [Wed, 27 Apr 2016 02:30:30 +0000 (19:30 -0700)]
pixelcache: reuse existing timeout source when possible

This avoids the g_source_remove(), g_source_destroy(),
g_timer_source_new(), and g_source_set_name_by_id() in the common case.

Instead, we reuse our previous source and update the ready time to our
new deadline. We lose the coalescing with g_timeout_add_seconds(), but
that is not going to help in the common case anyway (unless you have
three hands and can scroll multiple pixelcached backed widgets at once).

https://bugzilla.gnome.org/show_bug.cgi?id=765640

9 years agoUpdated Spanish translation
Daniel Mustieles [Wed, 27 Apr 2016 07:47:56 +0000 (07:47 +0000)]
Updated Spanish translation

9 years agodnd: Fix some issues with drag icons
Matthias Clasen [Wed, 27 Apr 2016 02:02:34 +0000 (22:02 -0400)]
dnd: Fix some issues with drag icons

In non-composited environments, we were ending up with all-black
drag icons, because nothing was drawing the background of our new
toplevel. Fix this by drawing background when we are not composited.
We don't do this when composited, since we want to allow transparent
icons.

9 years agoFix indentation
Matthias Clasen [Wed, 27 Apr 2016 01:25:02 +0000 (21:25 -0400)]
Fix indentation

9 years agodnd: Set attributes from all widgets for text drag icons
Matthias Clasen [Wed, 27 Apr 2016 01:23:08 +0000 (21:23 -0400)]
dnd: Set attributes from all widgets for text drag icons

There is nothing textview-specific here.

9 years agoplacesview: provide guidance on server addresses
Georges Basile Stavracas Neto [Tue, 26 Apr 2016 12:57:36 +0000 (09:57 -0300)]
placesview: provide guidance on server addresses

GtkPlacesView currently provides no example of
server addresses, which may confuse users.

To fix that, add a helper popover with some
guidance on server addresses.

https://bugzilla.gnome.org/show_bug.cgi?id=756570

9 years agoprogressbar: Enforce invariants
Matthias Clasen [Wed, 27 Apr 2016 00:44:07 +0000 (20:44 -0400)]
progressbar: Enforce invariants

When measuring gadgets, minimum must come out <= natural.
Make sure we don't fail this when measuring progressbar text.

https://bugzilla.gnome.org/show_bug.cgi?id=765644

9 years agodnd: Fix lifecycle issues with widgets as drag icons
Matthias Clasen [Wed, 27 Apr 2016 00:35:25 +0000 (20:35 -0400)]
dnd: Fix lifecycle issues with widgets as drag icons

The documentation clearly says that the widget is not destroyed,
but we were in fact failing to keep it alive, since it was still
a child or the icon_window when we destroy that. Fix this by
reparenting the icon_widget out before. Also, deal with the
possibility that the application might destroy the widget
halfway through, for whatever reason.

9 years agotestdnd2: Actually test gtk_drag_set_icon_widget
Matthias Clasen [Wed, 27 Apr 2016 00:34:24 +0000 (20:34 -0400)]
testdnd2: Actually test gtk_drag_set_icon_widget

I added a new test function, but didn't actually use it.
No wonder I couldn't reproduce the lifecycle issues with
drag widgets that firefox is experiencing.

9 years agodocs: typo in GTK_STYLE_CLASS_LIST_ROW docs
Bernhard Reutner-Fischer [Tue, 26 Apr 2016 17:29:33 +0000 (19:29 +0200)]
docs: typo in GTK_STYLE_CLASS_LIST_ROW docs

Fix typo in documentation of GTK_STYLE_CLASS_LIST_ROW: s/rowss/rows/g

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
https://bugzilla.gnome.org/show_bug.cgi?id=765632

9 years agogdk/dnd: Don't use default display when getting cursor
Jonas Ådahl [Tue, 26 Apr 2016 07:31:33 +0000 (15:31 +0800)]
gdk/dnd: Don't use default display when getting cursor

Always associate a drag context with a GdkDisplay and use that when
getting a cursor for a given action.

If we don't do this, dragging on a window that doesn't use the default
display will make us use cursors from the wrong display.

https://bugzilla.gnome.org/show_bug.cgi?id=765565

9 years agoframetimings: reuse previous frame timing in common case
Christian Hergert [Tue, 26 Apr 2016 10:08:11 +0000 (03:08 -0700)]
frametimings: reuse previous frame timing in common case

Typically, there won't be any references on old frame timings except for
the most recent timing. So instead of discarding these and re-entering
gslice twice, just steal the old frame timing and reuse it.

https://bugzilla.gnome.org/show_bug.cgi?id=765592

9 years agogdk/dnd: Add missing signal parameter documentation
Jonas Ådahl [Tue, 26 Apr 2016 07:50:17 +0000 (15:50 +0800)]
gdk/dnd: Add missing signal parameter documentation

The cancel reason parameter was missing.

https://bugzilla.gnome.org/show_bug.cgi?id=765577

9 years agowayland: Track orphaned dialogs per display
Jonas Ådahl [Tue, 26 Apr 2016 03:46:25 +0000 (11:46 +0800)]
wayland: Track orphaned dialogs per display

Don't track all orphaned dialogs globally, as mixing them up with each
other would in most cases trigger errors when we try to pass bogus
values to Wayland requests.

https://bugzilla.gnome.org/show_bug.cgi?id=765474

9 years agowayland: Clean up naming of GdkWaylandDisplay pointers
Jonas Ådahl [Tue, 26 Apr 2016 03:16:56 +0000 (11:16 +0800)]
wayland: Clean up naming of GdkWaylandDisplay pointers

The naming of pointers to GdkWaylandDisplay's were inconsistent.
Running the following commands in gtk+/gdk/wayland illustrate the
inconsistency:

$ grep -r '\<display_wayland\>' *.[ch] | wc -l
195
$ grep -r '\<wayland_display\>' *.[ch] | wc -l
81

This patch renames all occurrences of "wayland_display" to
"display_wayland". This is also consistent with naming in the X11
backend. A couple of whitespace changes were done as well in places
where the rename was already done, that added line breaks to long lines
that stood out.

https://bugzilla.gnome.org/show_bug.cgi?id=765474

9 years agogdk/gdkglcontext.c: Avoid a GCCism
Chun-wei Fan [Tue, 26 Apr 2016 12:29:23 +0000 (20:29 +0800)]
gdk/gdkglcontext.c: Avoid a GCCism

Pointer arithmetic on GLvoid* (a void*) is a GCCism, so cast it to an
unsigned char*, which is the type cairo_image_surface_get_data() returns.

9 years agoVisual Studio builds: Generate .pc files
Chun-wei Fan [Tue, 26 Apr 2016 08:27:32 +0000 (16:27 +0800)]
Visual Studio builds: Generate .pc files

Generate .pc files for the package, so that it would be easier for
building introspection for packages that depend on GTK+.  Also split
PythonPath into PythonPath and PythonPathX64 to facilitate the build of
introspection files, which need to have Python that is built with the
same ac=rchitecture where GTK+ is built.

Clean up the formatting and spacing a bit.

9 years agoUpdated Hungarian translation
Gábor Kelemen [Tue, 26 Apr 2016 09:43:45 +0000 (09:43 +0000)]
Updated Hungarian translation

9 years agogdk: Ensure resources registration happens once
Emmanuele Bassi [Tue, 26 Apr 2016 08:10:03 +0000 (09:10 +0100)]
gdk: Ensure resources registration happens once

Like GTK does it.

https://bugzilla.gnome.org/show_bug.cgi?id=765576

9 years agoExpand the drag widget testcase
Matthias Clasen [Tue, 26 Apr 2016 04:19:02 +0000 (00:19 -0400)]
Expand the drag widget testcase

This adds a testcase which reuses the drag widget for multiple
drags.

9 years agoUpdates
Matthias Clasen [Tue, 26 Apr 2016 01:39:09 +0000 (21:39 -0400)]
Updates

9 years agolabel css style test: fix font syntax
Matthias Clasen [Tue, 26 Apr 2016 04:06:12 +0000 (00:06 -0400)]
label css style test: fix font syntax

9 years agoRemove debug spew
Matthias Clasen [Tue, 26 Apr 2016 04:04:55 +0000 (00:04 -0400)]
Remove debug spew

9 years agoFix css parser tests
Matthias Clasen [Tue, 26 Apr 2016 04:02:37 +0000 (00:02 -0400)]
Fix css parser tests

These tests were affected by the font and linear-gradient parsing
changes.

9 years agocss: Fix printing of images
Matthias Clasen [Tue, 26 Apr 2016 04:01:59 +0000 (00:01 -0400)]
css: Fix printing of images

When there is only a call in a fallback image, we were errnoneously
printing out a comma before it.

9 years agoRaleigh: Fix font syntax
Matthias Clasen [Tue, 26 Apr 2016 03:25:32 +0000 (23:25 -0400)]
Raleigh: Fix font syntax

9 years agonotify test: Skip GtkFontButton::font-name
Matthias Clasen [Tue, 26 Apr 2016 03:08:39 +0000 (23:08 -0400)]
notify test: Skip GtkFontButton::font-name

This is not freely settable.

9 years agofont button: Fix translation of font-name default
Matthias Clasen [Tue, 26 Apr 2016 03:08:03 +0000 (23:08 -0400)]
font button: Fix translation of font-name default

The default value should come out of regular translations, not
property translations.

9 years agowayland: avoid jitter in keyboard repeat
Christian Hergert [Tue, 26 Apr 2016 01:10:09 +0000 (18:10 -0700)]
wayland: avoid jitter in keyboard repeat

When synthesizing keyboard repeat, we can potentially drift further from
the mark depending on the timing of the frame callback and how long it
took to deliver the event.

This patch attempts to reduce this by tracking from a stable epoch the
time of our next keyboard repeat.

https://bugzilla.gnome.org/show_bug.cgi?id=765567

9 years agoGtkLabel: Use g_clear_object
Timm Bäder [Sun, 24 Apr 2016 08:46:03 +0000 (10:46 +0200)]
GtkLabel: Use g_clear_object

https://bugzilla.gnome.org/show_bug.cgi?id=765496

9 years agoGtkLabel: Don't manually iterate over link list
Timm Bäder [Sun, 24 Apr 2016 08:32:55 +0000 (10:32 +0200)]
GtkLabel: Don't manually iterate over link list

There are various functions to access links based on their index for
a11y. We can spare quite a few lines of code by just using
g_list_nth_data instead of iterating over the list ourselves.

https://bugzilla.gnome.org/show_bug.cgi?id=765496

9 years agobuiltinicon: avoid calculating font-metrics in vast majority of cases
Christian Hergert [Mon, 25 Apr 2016 07:22:54 +0000 (00:22 -0700)]
builtinicon: avoid calculating font-metrics in vast majority of cases

We perform lots of gadget allocations that require allocating a
GtkBuiltinIcon. One notable example is the scrollbar for a scrolled
window.

In the process of doing this, we often calculate baseline information that
isn't necessary. With how much this code path gets exercised, its worth
catching the result for the common case, which is that the font-description
has not changed and we are using the default language the application
was started with.

This simply caches the previous result and verifies that we can reuse it
with pango_font_description_hash() and a simple language check.

Numbers below are scrolling through a textview with GDK_KEY_Down.

Before:
      SELF CUMULATIVE    FUNCTION
[   0.08%] [   9.26%]    gtk_builtin_icon_get_preferred_size
[   0.01%] [   8.82%]      pango_context_get_metrics
[   0.02%] [   0.16%]      gtk_widget_get_pango_context
[   0.06%] [   0.06%]      pango_context_get_language
[   0.01%] [   0.02%]      g_type_check_instance_cast
[   0.02%] [   0.02%]      strlen
[   0.02%] [   0.02%]      pango_context_get_font_description
[   0.02%] [   0.02%]      g_list_foreach
[   0.01%] [   0.01%]      gtk_css_style_get_value
[   0.01%] [   0.01%]      itemize_with_font
[   0.01%] [   0.01%]      pango_context_get_type
[   0.01%] [   0.01%]      get_base_metrics
[   0.00%] [   0.01%]      pango_font_metrics_unref
[   0.01%] [   0.01%]      g_list_free
[   0.01%] [   0.01%]      gtk_builtin_icon_get_type

After:
      SELF CUMULATIVE    FUNCTION
[   0.08%] [   0.18%]    gtk_builtin_icon_get_preferred_size
[   0.02%] [   0.02%]      pango_font_description_hash
[   0.00%] [   0.02%]      gtk_widget_get_pango_context
[   0.00%] [   0.02%]        g_object_get_qdata
[   0.00%] [   0.02%]          g_datalist_id_get_data
[   0.02%] [   0.02%]      gtk_builtin_icon_get_type
[   0.01%] [   0.01%]      pango_context_get_font_description
[   0.00%] [   0.01%]      - - kernel - -
[   0.01%] [   0.01%]      pango_context_get_language
[   0.00%] [   0.01%]      gtk_css_style_get_value
[   0.00%] [   0.01%]      gtk_css_gadget_get_style

https://bugzilla.gnome.org/show_bug.cgi?id=765486

9 years agodocs: Add new GtkGLArea symbols
Emmanuele Bassi [Sat, 23 Apr 2016 09:34:53 +0000 (10:34 +0100)]
docs: Add new GtkGLArea symbols

9 years agodocs: Add new GdkGLContext symbols
Emmanuele Bassi [Sat, 23 Apr 2016 09:34:14 +0000 (10:34 +0100)]
docs: Add new GdkGLContext symbols

9 years agodocs: Clarify the platform-dependency of GdkGLContext:use-es
Emmanuele Bassi [Sat, 23 Apr 2016 09:33:08 +0000 (10:33 +0100)]
docs: Clarify the platform-dependency of GdkGLContext:use-es

Not all platforms allow creating an OpenGL ES context.

9 years agoglarea: Use the appropriate texture format for GLES
Emmanuele Bassi [Mon, 25 Apr 2016 11:28:41 +0000 (12:28 +0100)]
glarea: Use the appropriate texture format for GLES

The core OpenGL ES spec does not have GL_BGRA, so we need to make do
with GL_RGBA and live with the format conversion.

9 years agoglarea: Relay the use-es flag to context creation
Emanuele Aina [Mon, 18 Apr 2016 14:15:27 +0000 (16:15 +0200)]
glarea: Relay the use-es flag to context creation

https://bugzilla.gnome.org/show_bug.cgi?id=743746

9 years agodemo: Add GLES support to the GtkGLArea demo
Emmanuele Bassi [Sat, 23 Apr 2016 12:46:05 +0000 (13:46 +0100)]
demo: Add GLES support to the GtkGLArea demo

We need new shaders, and we need to select the correct shader when
building the program we use to render the triangle.

9 years agotests: Add GLES support to GtkGears
Emmanuele Bassi [Sat, 23 Apr 2016 11:31:15 +0000 (12:31 +0100)]
tests: Add GLES support to GtkGears

Use the appropriate GLSL shaders when running under an OpenGL ES
context.

9 years agotests: Add GLES shaders to testglarea
Emmanuele Bassi [Fri, 22 Apr 2016 12:53:16 +0000 (13:53 +0100)]
tests: Add GLES shaders to testglarea

Check if the GdkGLContext is using ES, and load the appropriate shaders
in that case.

9 years agogl: Use a uniform to flip R and B colors on GLES
Emmanuele Bassi [Mon, 25 Apr 2016 12:38:22 +0000 (13:38 +0100)]
gl: Use a uniform to flip R and B colors on GLES

This allows us to decide when the R and B color channels should be
flipped with a much better granularity.

For instance, when using GLX_EXT_texture_from_pixmap to create a GL
texture from a surface we don't need to swap the R and B channels, as
the internal representation of the texture data will already have the
appropriate colors.

We also don't need to flip color channels when blitting from a texture.

9 years agogl: Add fallback for missing subimage unpacking
Emmanuele Bassi [Mon, 25 Apr 2016 09:31:51 +0000 (10:31 +0100)]
gl: Add fallback for missing subimage unpacking

For GLES 2.0 platforms with the subimage unpacking extension we need to
upload one row of the image surface at a time.

9 years agox11: Allow creating GLES contexts
Emmanuele Bassi [Fri, 22 Apr 2016 17:01:19 +0000 (18:01 +0100)]
x11: Allow creating GLES contexts

We need to check for the GLX_EXT_create_context_es2_profile extension,
which allows us to create a GLES context while using the GLX API.

9 years agowayland: Bind the appropriate OpenGL API
Emmanuele Bassi [Sat, 23 Apr 2016 09:13:39 +0000 (10:13 +0100)]
wayland: Bind the appropriate OpenGL API

If we want to use OpenGL ES with EGL then we need to bind the API before
creating the EGL context.

9 years agowayland: Add debugging notes for EGL context creation
Emmanuele Bassi [Fri, 22 Apr 2016 17:50:50 +0000 (18:50 +0100)]
wayland: Add debugging notes for EGL context creation

9 years agowayland: Honour GDK_GL=gles on context creation
Emmanuele Bassi [Fri, 22 Apr 2016 11:45:32 +0000 (12:45 +0100)]
wayland: Honour GDK_GL=gles on context creation

9 years agowayland: Implement asking for a GLES context
Emmanuele Bassi [Mon, 18 Apr 2016 09:13:05 +0000 (10:13 +0100)]
wayland: Implement asking for a GLES context

Wayland uses EGL, which allows us to ask for a GLES context.

https://bugzilla.gnome.org/show_bug.cgi?id=743746

9 years agogl: Tweak the swizzle for GLES texture fragments
Emmanuele Bassi [Sat, 23 Apr 2016 12:52:03 +0000 (13:52 +0100)]
gl: Tweak the swizzle for GLES texture fragments

Cairo surfaces are in BGRA format, but we upload them as RGBA buffers on
GLES; this means that the R and B channels are flipped in the texture
data.

Instead of doing a costly channel flip before putting them on the GPU,
we can flip the values inside the GLSL shader we use specifically for
GLES.

9 years agogl: Use the appropriate formats when reading buffers on GLES
Emmanuele Bassi [Sat, 23 Apr 2016 11:16:03 +0000 (12:16 +0100)]
gl: Use the appropriate formats when reading buffers on GLES

We cannot use GL_BGRA and GL_UNSIGNED_INT_8_8_8_8_REV when reading back
from the frame buffer in the software fallback path, as they do not
exist on OpenGL ES.

This will make the slow path a bit slower, because of the implicit
format conversion.

9 years agogl: Use the appropriate format on GLES
Emmanuele Bassi [Sat, 23 Apr 2016 09:21:13 +0000 (10:21 +0100)]
gl: Use the appropriate format on GLES

When uploading a Cairo image surface to a GL texture we cannot use
GL_BGRA and GL_UNSIGNED_INT_8_8_8_8_REV on OpenGL ES, as they do not
exist in the core spec.

9 years agogl: Add more OpenGL ES checks
Emmanuele Bassi [Fri, 22 Apr 2016 16:27:04 +0000 (17:27 +0100)]
gl: Add more OpenGL ES checks

Check for the appropriate extensions depending on which type of API
we're using.

9 years agogdk: Add GLES shaders
Emmanuele Bassi [Fri, 22 Apr 2016 12:52:49 +0000 (13:52 +0100)]
gdk: Add GLES shaders

We cannot use GL shaders with GLES.

9 years agogdk: Add 'GDK_GL=gles' flag
Emmanuele Bassi [Fri, 22 Apr 2016 11:40:57 +0000 (12:40 +0100)]
gdk: Add 'GDK_GL=gles' flag

Allows forcing the selection of a GLES context.

9 years agogdk: Move GLSL shaders into GResource
Emmanuele Bassi [Fri, 22 Apr 2016 11:34:33 +0000 (12:34 +0100)]
gdk: Move GLSL shaders into GResource

Having the shaders inlined as C strings makes them harder to edit and
maintain.

9 years agogl: Relay use-es from context to paint data
Emmanuele Bassi [Mon, 18 Apr 2016 09:21:36 +0000 (10:21 +0100)]
gl: Relay use-es from context to paint data

This way we can select the appropriate API or the appropriate shaders.

https://bugzilla.gnome.org/show_bug.cgi?id=743746

9 years agogl: Add 'use-es' flag
Emmanuele Bassi [Mon, 18 Apr 2016 09:10:30 +0000 (10:10 +0100)]
gl: Add 'use-es' flag

On some platforms we can ask the GL context machinery to create a GLES
context, instead of a GL one.

In order to ask for a GLES context at GdkGLContext realization time, we
use a bit field like we do for forward compatible, or debug contexts.

The 'use-es' bit also changes the way we select a default version,
because OpenGL and OpenGLES versions differ.

https://bugzilla.gnome.org/show_bug.cgi?id=743746

9 years agoinspector: do not leak seat capabilities descriprion
Paolo Borelli [Sun, 24 Apr 2016 09:46:38 +0000 (11:46 +0200)]
inspector: do not leak seat capabilities descriprion

Factor out an utility function for readability and free the string
with the list of capabilities

9 years agoquartz: fix quartz build
Christian Hergert [Sun, 24 Apr 2016 07:46:15 +0000 (00:46 -0700)]
quartz: fix quartz build

The quartz backend has its own implementation of these that
collide since the gtkdragdest.c extraction.

https://bugzilla.gnome.org/show_bug.cgi?id=764712

9 years agokineticscrolling: avoid stutter at tail of kinetic deceleration
Christian Hergert [Sun, 24 Apr 2016 09:41:26 +0000 (02:41 -0700)]
kineticscrolling: avoid stutter at tail of kinetic deceleration

When decelerating the kinetic scroll, we can get into a position where it
looks like we are stuttering. This happens because the amount we move is
so little that it takes multiple frames to make forward progress by one
pixel.

This prevents that by detecting when we have reached the slow stutter of
the deceleration and simply stops the deceleration phase immediately.

https://bugzilla.gnome.org/show_bug.cgi?id=765493

9 years agoAdwaita: color tweaks
Lapo Calamandrei [Fri, 22 Apr 2016 12:42:47 +0000 (14:42 +0200)]
Adwaita: color tweaks

use a slightly cold and slightly darker gray for the dark variant,
use the same hue for the osd bg color, make it bit darker and
transparent.

9 years agoUpdated Scottish Gaelic translation
GNOME Translation Robot [Fri, 22 Apr 2016 12:09:51 +0000 (12:09 +0000)]
Updated Scottish Gaelic translation

9 years agoapp: replace private accels functions by get_application_accels()
Sébastien Wilmet [Wed, 20 Apr 2016 15:24:46 +0000 (17:24 +0200)]
app: replace private accels functions by get_application_accels()

It's like gtk_application_get_action_muxer().

https://bugzilla.gnome.org/show_bug.cgi?id=764879

9 years agoapp: share function to normalise detailed action name
Sébastien Wilmet [Wed, 20 Apr 2016 15:13:26 +0000 (17:13 +0200)]
app: share function to normalise detailed action name

Put the function in gtkactionmuxer.c, where
gtk_print_action_and_target() is implemented.

https://bugzilla.gnome.org/show_bug.cgi?id=764879

9 years agoapp-accels: rename static functions
Sébastien Wilmet [Wed, 20 Apr 2016 15:03:36 +0000 (17:03 +0200)]
app-accels: rename static functions

Remove the "accels_" prefix from the remaining static functions. The
prefix no longer makes sense since the whole file is devoted to accels.

https://bugzilla.gnome.org/show_bug.cgi?id=764879

9 years agoapp: extract GtkApplicationAccels private class
Sébastien Wilmet [Mon, 11 Apr 2016 15:13:09 +0000 (17:13 +0200)]
app: extract GtkApplicationAccels private class

This has several benefits:
- Less code in GtkApplication. The accels handling is something
  self-contained, and GtkApplication now delegates the work.
- For the accels functions, there is now a distinction between static
  functions and functions in the gtkapplicationaccelsprivate.h header,
  which makes the code easier to understand, because we have a good
  overview just by reading the header.
- The struct _GtkApplicationPrivate is now easier to find instead of
  being in the middle of the file.

https://bugzilla.gnome.org/show_bug.cgi?id=764879

9 years agoapp: write higher-level gtk_application_accels static functions
Sébastien Wilmet [Mon, 11 Apr 2016 15:28:23 +0000 (17:28 +0200)]
app: write higher-level gtk_application_accels static functions

These will become the functions present in the
gtkapplicationaccelsprivate.h header.

The gtk_application_accels functions deal with detailed_action_name's
instead of action_and_target's. action_and_target is an implementation
detail of Accels.

The added function prototype is temporary, it'll be removed in a later
commit.

https://bugzilla.gnome.org/show_bug.cgi?id=764879

9 years agotextiter: add unit test for forward_to_line_end
Paolo Borelli [Thu, 21 Apr 2016 20:54:55 +0000 (22:54 +0200)]
textiter: add unit test for forward_to_line_end

Surprisingly we had no unit test for this method

9 years agoFix formatting
Matthias Clasen [Fri, 22 Apr 2016 03:24:13 +0000 (23:24 -0400)]
Fix formatting

The previous change was not quite using the right coding style.